#ifndef SYMTABLE_H
#define SYMTABLE_H

typedef struct sym_node
{
	// Prochain élément
	struct sym_node* next;
	
	// Symbole
	char* id;      // Nom
	int   type;    // Type
	char* addr;    // Addresse mémoire
	int  debut;    // Indice de début du tableau
	
	int index;     // Indice dans la liste chaînée
}
symtable;

#include "global.h"

symtable* table_add(symtable* table, char* id, int type, char* addr);
symtable* table_add_identlist(symtable* table, syntree* list, syntree* list_type);
symtable* table_mod_arraylist(symtable* table, syntree* list, int size);
symtable* table_get(symtable* table, int index);
symtable* table_get_str(symtable* table, char* id);
void      table_print(symtable* table);
void      table_free(symtable* table);

#endif
